﻿using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;

namespace ReactiveCode.Linq
{
    abstract class LinqOperator<T>: IDisposable
    {
        public IEnumerableObserver<T> Observer { get; private set; }

        public LinqOperator(IEnumerableObserver<T> observer)
        {
            Contract.Requires(observer != null);
            Observer = observer;
        }

        public virtual void Dispose()
        {
        }
    }
}